function parseGetParams( urlStr ) { 
   var $_GET = {}; 
   var __GET = urlStr.split("&"); 
   for(var i=0; i<__GET.length; i++) { 
	  var getVar = __GET[i].split("="); 
	  $_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1]; 
   } 
   return $_GET; 
} 

/* цепляем подтверждение для опциональных кнопочек - сабмитов */
var elems = document.getElementsByClassName('confirm_submit'), handler = null;
for(var i=0; i<elems.length; i++){
	elems[i].onclick = function(e){//
		if(!confirm('Подтверждаете "'+this.value+'"?')) return false;
	}
}
/* цепляем подтверждение для опциональных кнопочек - сабмитов */
var elems = document.getElementsByName('check_all');
for(var i=0; i<elems.length; i++){
	elems[i].onclick = function(e){//
		var j, ch=document.getElementsByName( this.value ); 
		for( j=0;j<ch.length;j++) ch[j].checked=this.checked;
	}
}

/* цепляем подтверждение действия для класса noSavedCheck при существующем флаге noSavedChanges */
var elems = document.getElementsByClassName('noSavedCheck');
for(var i=0; i<elems.length; i++){
	elems[i].onclick = checkNoSaved;
}
/* подтверждение действия при существующем флаге noSavedChanges */
function checkNoSaved(){
	if( window.noSavedChanges )
		if(!confirm('Вы можете потерять несохраненные данные.\nПродолжить?')) {
			return false;
		}
	return true;
}
/* функция для ссылок onclick="return checkNoSavedAnchor(this)" */
function checkNoSavedAnchor( self ){
	 var href = self.getAttribute( 'data-href' ) || self.href;

    if ( checkNoSaved() ) {
        location.href = href;
    }
    return false;
}

/* проверка открытия во фрейме */
function checkFrame(){
	if(top.location.href==document.location.href){
		var loc = document.location;
		document.location.href = '/admin/?module='+loc.href.replace( loc.protocol+'//'+loc.host+(loc.port?':'+loc.port:''),'' );
	} 
}

function addEvent(elem, evType, fn) {
	if (elem.addEventListener) {
		elem.addEventListener(evType, fn, false);
        return fn;
	}

	iefn = function() { fn.call(elem) };
	elem.attachEvent('on' + evType, iefn);
	return iefn;
}

/* Добавление/удалениет/провка CSS-класса элемента */
function addClass(elem, clazz) {
  var c = elem.className.split(' ');
  for(var i=0; i<c.length; i++) {
    if (c[i] == clazz) return;
  }

  if (elem.className == '') elem.className = clazz;
  else elem.className += ' ' + clazz;
}


function removeClass(elem, clazz) {
  var c = elem.className.split(' ');
  for(var i=0; i<c.length; i++) {
    if (c[i] == clazz) c.splice(i--, 1);
  }

  elem.className = c.join(' ');
}

function hasClass(el, cls) {
  for(var c = el.className.split(' '),i=c.length-1; i>=0; i--) {
    if (c[i] == cls) return true;
  }
  return false;
}
/* Добавление/удалениет/провка CSS-класса элемента */


